package com.bh.order.vo;

import com.bh.common.annotation.Excel;
import com.bh.extend.domain.JcCustomer;
import com.bh.kysys.domain.JcSysOrganization;
import com.bh.order.domain.JcLed;
import com.bh.order.domain.JcOrderReceivingParty;
import com.bh.order.domain.JcServerZone;
import com.bh.order.domain.JcZoneStoreroom;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 订单对象收货对象
 *
 * @author slx
 * @date 2023-04-22
 */
@ApiModel("订单收货、发货对象")
@Data
public class JsOrderToAndReceiveVo implements Serializable {



    private static final long serialVersionUID = 1L;

    private Long id;
    //代码
    private String code;

    private Integer status = 1;
    /**
     * 客户名称(零散客户)
     */
    @Excel(name = "客户名称(零散客户)")
    private String customerName;

    /**
     * 客户类型  0:零散，1:合同
     */
    @Excel(name = "客户类型  0:零散，1:合同")
    private Integer customerType;

    /**
     * 件数
     */
    @Excel(name = "件数")
    private Integer number;

    /**
     * 订单日期
     */
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "订单日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date time;


    private Integer transportPro;
    /**
     * 客户
     */
    @Excel(name = "客户")
    private Long jcCustomerId;

    /**
     * 组织机构(出发网点)
     */
    @Excel(name = "组织机构(出发网点)")
    private Long jcOrganizationId;

    /**
     * 实际到达时间
     */
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "实际到达时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date factArriveTime;

    /**
     * 实际发运时间
     */
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "实际发运时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date factLeaveTime;

    /**
     * 要求到达时间
     */
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd")
    @Excel(name = "要求到达时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planArriveTime;

    /**
     * 要求发运时间
     */
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "要求发运时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planLeaveTime;

    /**
     * 起运站
     */
    @Excel(name = "起运站")
    private Long jcFromOrganizationId;

    /**
     * 目的站
     */
    @Excel(name = "目的站")
    private Long jcToOrganizationId;

    /**
     * 目的运点
     */
    @Excel(name = "目的运点")
    private Long jcEndZoneId;

    /**
     * 出发运点
     */
    @Excel(name = "出发运点")
    private Long jcStartZoneId;

    /**
     * 是否有拆单(0否,1是)
     */
    @Excel(name = "是否有拆单(0否,1是)")
    private Integer isTake;

    /**
     * 签收时间
     */
    @JsonFormat(timezone="GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "签收时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date qsTime;

    /**
     * 签收人
     */
    @Excel(name = "签收人")
    private String qsPerson;

  
    private JcSysOrganization toOrganization;//目的网点
  
    private JcCustomer customer; //客户
  
    private JcSysOrganization fromOrganization; //组织机构(出发网点)

    private JcOrderReceivingParty fromParties; //所属收货方

    private JcOrderReceivingParty toParties; //所属发货方


    private JcZoneStoreroom zoneStoreroom; //库存区域
  
    private JcServerZone startZone;    //出发运点
  
    private JcServerZone endZone;      //目的运点

    private List<JcLed> leds;//分段订单
}
